package dse.modules;

import java.util.List;
import java.util.Map;

import dse.Cluster;
import dse.DataObject;
import dse.Network;
import dse.Node;

public interface CacheDecisionMaker extends Module {

	/**
	 * Get the objects that should be cached by the clusters.
	 * 
	 * @param network
	 * @param generatedRequests	Requests that were generated for the present 
	 * 							time period.
	 * @return	A mapping from clusters to new data objects they should cache.
	 */
	Map<Cluster, List<DataObject>> makeCachingDecisions (
			Network network,
			Map<Node, DataObject> generatedRequests
			);
}
